package com.shuqing.download.engine.distribute.dispatch;

import com.shuqing.download.engine.DefaultHandler;
import com.shuqing.download.engine.constants.ActuatorEnum;
import com.shuqing.download.engine.distribute.dispatch.monitor.MonitorLeader;
import org.springframework.beans.factory.annotation.Autowired;

/**
 * 执行器顶层抽象类
 * @author wangshuqing
 * @date 2023/3/5 15:17
 */
public abstract class AbstractActuator implements DefaultHandler {

    @Autowired
    protected MonitorLeader monitorLeader;

    /**
    * 执行器类型
    * @date 2023/3/7 10:15
    * @author wangshuqing
    * @param
     *@return com.shuqing.download.engine.constants.ActuatorEnum
    * */
    public abstract ActuatorEnum actuatorEnum();

    /**
    *  核心处理
    * @date 2023/3/5 15:20
    * @author wangshuqing
    * @param taskContext
    * */
    public abstract void execute(TaskContext taskContext);
}
